/*
条件 A ：对于所有的i,g2i>g2i-1 ,且g2i>g2i+1
条件 B ：对于所有的i,g2i>g2i-1 ,且g2i<g2i+1
以上两个条件可以总结为：求一个最长序列，使得该序列的任意三个相邻元素，中间元素是三个中最大或最小的
可以类比最长不下降子序列
比如元素d[i]和d[j]，假设d[i]>d[j]且j>i，那么我们会让long [j]=max(long [j],long [i]+1);
只是当前寻找前驱的范围是前一个节点，而且我们还要用同样的方法求一个最长不上升子序列
*/

#include <stdio.h>

#define I 123456

int max(int a, int b) {
    return (a > b) ? a : b;
}

int main() {
    int a[I], d_1[I], d_2[I];
    int n;
    
    scanf("%d", &n);
    
    for (int i = 1; i <= n; i++) {
        int x;
        scanf("%d", &x);
        a[i] = x;
    }
    
    d_1[1] = d_2[1] = 1;
    
    for (int i = 2; i <= n; i++) {
        if (a[i] > a[i-1]) {
            d_1[i] = max(d_1[i-1], d_2[i-1] + 1);
            d_2[i] = d_2[i-1];
        } else if (a[i] < a[i-1]) {
            d_1[i] = d_1[i-1];
            d_2[i] = max(d_1[i-1] + 1, d_2[i-1]);
        } else {
            d_1[i] = d_1[i-1];
            d_2[i] = d_2[i-1];
        }
    }
    
    int ans = max(d_1[n], d_2[n]);
    
    printf("%d\n", ans);
    
    return 0;
}
